/**
 * @ProjectName: p2p_core_sina 
 * @Copyright: Copyright (c) 2016, qudoulicai All Rights Reserved. 
 * @address: Hangzhou City, Zhejiang Province, China
 * @date: 2016年1月18日 上午11:50:32
 * @Description: 微信菜单
 */
package com.qdlc.p2p.dal.dao;



import com.qdlc.p2p.dal.common.dao.BaseDao;
import com.qdlc.p2p.dal.dto.WeChatMenu;

import java.util.List;

/**
 * <p>微信菜单Dao类</p>
 * @author Kaiju Zhao 2016年1月18日 上午11:50:32
 * @version V1.0   
 * @modificationHistory=========================逻辑或功能性重大变更记录
 * @modify by user: {修改人} 2016年1月18日 上午11:50:32
 * @modify by reason:{原因}
 */
public interface WeChatMenuDao extends BaseDao<WeChatMenu> {
    
    /**
     * <p>根据菜单状态来获取菜单</p>
     * @author Kaiju Zhao 2016年1月18日 上午11:52:35
     * @param isDelete 
     * @return
     * @modificationHistory=========================逻辑或功能性重大变更记录
     * @modify by user: {修改人} 2016年1月18日 上午11:52:35
     * @modify by reason:{原因}
     */
    List<WeChatMenu> listByIsDelete(boolean isDelete);
    
    /**
     * <p>根据parentId查询当前菜单的子菜单</p>
     * @author Kaiju Zhao 2016年1月18日 上午11:54:10
     * @param parentId
     * @return
     * @modificationHistory=========================逻辑或功能性重大变更记录
     * @modify by user: {修改人} 2016年1月18日 上午11:54:10
     * @modify by reason:{原因}
     */
    List<WeChatMenu> listByParentId(long parentId);

	/**
	 * <p>根据parentId删除子类菜单信息(逻辑删除)</p>
	 * @author Kaiju Zhao 2016年1月18日 上午11:56:15
	 * @param parentId
	 * @modificationHistory=========================逻辑或功能性重大变更记录
	 * @modify by user: {修改人} 2016年1月18日 上午11:56:15
	 * @modify by reason:{原因}
	 */
	void deleteByParentId(long parentId);
	
	/**
	 * <p>根据parentId和菜单状态来获取菜单</p>
	 * @author Kaiju Zhao 2016年1月18日 下午12:02:11
	 * @param parentId
	 * @param isDelete
	 * @return
	 * @modificationHistory=========================逻辑或功能性重大变更记录
	 * @modify by user: {修改人} 2016年1月18日 下午12:02:11
	 * @modify by reason:{原因}
	 */
	List<WeChatMenu> listByParentIdAndIsDelete(long parentId, boolean isDelete);
	
    /**
     * <p>根据id标记删除菜单信息(逻辑删除)</p>
     * @author Kaiju Zhao 2016年1月18日 下午4:41:52
     * @param id
     * @modificationHistory=========================逻辑或功能性重大变更记录
     * @modify by user: {修改人} 2016年1月18日 下午4:41:52
     * @modify by reason:{原因}
     */
    void deleteById(long id);
    
    /**
     * <p>根据菜单层级和状态来获取菜单列表信息</p>
     * @author Kaiju Zhao 2016年1月19日 下午2:49:30
     * @param level
     * @param isDelete
     * @return
     * @modificationHistory=========================逻辑或功能性重大变更记录
     * @modify by user: {修改人} 2016年1月19日 下午2:49:30
     * @modify by reason:{原因}
     */
    List<WeChatMenu> listByLevelAndIsDelete(byte level, boolean isDelete);
    
    /**
     * <p>根据菜单类型来获取菜单</p>
     * @author Kaiju Zhao 2016年1月19日 下午8:42:30
     * @param buttonType
     * @return
     * @modificationHistory=========================逻辑或功能性重大变更记录
     * @modify by user: {修改人} 2016年1月19日 下午8:42:30
     * @modify by reason:{原因}
     */
    List<WeChatMenu> listModelsByButtonType(byte buttonType);
}
